]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
workspace: Use a better algorithm for computing individual thumbnail scale
authorJasper St. Pierre <jstpierre@mecheye.net>
Fri, 26 Oct 2012 15:43:38 +0000 (11:43 -0400)
committerJasper St. Pierre <jstpierre@mecheye.net>
Thu, 24 Jan 2013 20:14:03 +0000 (15:14 -0500)
The one we had before could make unmaximized windows appear to be bigger
than maximized ones, for a few reasons. Ensure that this doesn't happen
again, and add some comments to explain the whys and needs for twiddling
the individual thumbnail size.

https://bugzilla.gnome.org/show_bug.cgi?id=686944

js/ui/workspace.js

index 3fd25bb61fd3b128e4dd1ed5733ba2ca8ddff2ba..acffa2697a3fb0aad43dd43a43de1a9fc84d349c 100644 (file)
@@ -777,16 +777,19 @@ const LayoutStrategy = new Lang.Class({
     // Computes and returns a fancy scale for @window using the
     // base scale, @scale.
     _computeWindowScale: function(window, scale) {
-        let width = window.actor.width;
-        let height = window.actor.height;
-        let ratio;
-
-        if (width > height)
-            ratio = width / this._monitor.width;
-        else
-            ratio = height / this._monitor.height;
-
-        let fancyScale = (2 / (1 + ratio)) * scale;
+        // Since we align windows next to each other, the height of the
+        // thumbnails is much more important to preserve than the width of
+        // them, so two windows with equal height, but maybe differering
+        // widths line up.
+        let ratio = window.actor.height / this._monitor.height;
+
+        // The purpose of this manipulation here is to prevent windows
+        // from getting too small. For something like a calculator window,
+        // we need to bump up the size just a bit to make sure it looks
+        // good. We'll use a multiplier of 1.5 for this.
+
+        // Map from [0, 1] to [1.5, 1]
+        let fancyScale = _interpolate(1.5, 1, ratio) * scale;
         return fancyScale;
     },